package com.sq.partner.manager.service;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

import com.sq.partner.manager.common.Result;
import com.sq.partner.manager.common.exception.AppException;
import com.sq.partner.manager.mybatis.model.CoreDept;
import com.sq.partner.manager.mybatis.model.EinvoiceDto;
import com.sq.partner.manager.mybatis.model.GatewayChannelInfo;
import com.sq.partner.manager.mybatis.model.GatewayUser;
import com.sq.partner.manager.mybatis.model.TGatewayInvoice;
import com.sq.partner.manager.util.Page;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpSession;

/**
 * 组合方案配置Service
 * @author zhihuizhao
 *
 */
public interface IPushInfoManagerService {
	public Page queryInviocePageByCriteria(Page page) throws Exception;
	
	public boolean editInvioceGroup(TGatewayInvoice tGatewayInvoice) throws Exception;
	
	public  List<Map<Object, Object>> queryInvioceByID(Map<String, Object> map)throws Exception;
	
	public Page<GatewayChannelInfo> queryChannelInfoPage(Page<GatewayChannelInfo> page) throws Exception;
	
	public Map<String,String> queryIsPushInvioceBypartnerNo(String partnerNo)throws Exception;
	
	public List<Map<String, Object>> beforePushInvioce(Map<String, Object> map)throws Exception;
	
	public List<String> queryUserDept(String userId) throws Exception;
	
	public List<CoreDept> queryPrivilegeBranch(List<String>  deptCodeStr)throws Exception;
	
	public String pushPolicyInfo(String polNo)throws Exception;


	public List<EinvoiceDto> queryEinvoiceByPolList(String[] polList) throws Exception;

	void rePushByPol(String polNo) throws Exception;

	List<InputStream> getFileInputStream(MultipartFile[] myfiles) throws AppException;

	List<String> insertPolNoList(InputStream inputStream, GatewayUser user, HttpSession session) throws Exception;

	void rePushByPolList(String polNoList) throws Exception;
}
